export enum containerTypes {
    "Success" = "Success",
    "Primary" = "Primary",
    "Warning" = "Warning",
    "Error" = "Error"
}

export interface Attributes {
    title: string,
    theme: string,
    children: any[]
};
export interface AttributesPropsAndSetter {
    attributes: Attributes;
    setAttributes: (attrs: Partial<Attributes>) => void;
}

declare global {
    interface Window {
        codeBlockPro: {
            pluginUrl: string;
        };
    }
}

export type CustomStyles = {
    'color-text'?: string; // --shiki-color-text
    'color-background'?: string; // --shiki-color-background
    'token-constant'?: string; // --shiki-token-constant
    'token-string'?: string; // --shiki-token-string
    'token-comment'?: string; // --shiki-token-comment
    'token-keyword'?: string; // --shiki-token-keyword
    'token-parameter'?: string; // --shiki-token-parameter
    'token-function'?: string; // --shiki-token-function
    'token-string-expression'?: string; // --shiki-token-string-expression
    'token-punctuation'?: string; // --shiki-token-punctuation
    'token-link'?: string; // --shiki-token-link
    'line-background'?: string; // custom for this app
    'line-number-color'?: string; // custom for this app
};
export type HelpUrl = {
    text: string;
    url: string;
};

export type ThemeOption = Record<
    string,
    {
        name: string;
        priority?: boolean;
        custom?: boolean;
        styles?: CustomStyles;
        helpUrl?: HelpUrl;
    }
>;
